package com.java.oop.java_内部类_方法;

public class Main {

    public static void main(String[] args) {
        //外部类的创建
        Animal animal = new Animal();

        //创建内部类？
        //需要使用static修饰内部类
        Animal.Cat cat = new Animal.Cat();
        cat.breed = "kitty 猫";
        cat.color = "绿色";
        cat.takeMouse();

        //创建内部类的第二种方法
        //匿名内部类（隐藏真实类名，通过方法进行创建）
        Animal.Cat cat1 = animal.createCat();
        cat1.breed = "kitty 猫";
        cat1.color = "粉色";
        cat1.takeMouse();

        //java 方法
        animal.setBreed();
        System.out.println(animal.breed);
        System.out.println(animal.getBreed());

        //方法参数:在方法的括号里面，定义的对象(方法参数不要多于5个)
        animal.setBreed("tom 猫");
        System.out.println(animal.breed);
        System.out.println(animal.getBreed());

        //类方法
        System.out.println(Animal.num);
        Animal.jump();

        //构造方法的使用
        //无参构造使用
        Animal animal1 = new Animal();
        System.out.println(animal1);

        //有参构造使用
        Animal animal2 = new Animal("tom1 猫", "白色", 10);
        System.out.println(animal2);

        /**
         * 1.如果当前类中定义了无参和有参构造方法，那当前类在实例化（new）的时候，不进行传参是不会报错的；
         * 2.如果当前类中只定义了有参构造方法，那当前类在实例化（new）的时候，不进行传参是会报错的；
         * 3.如果当前类只定义了无参构造方法，那当前类在实例化（new）的时候，不会报错，同时这个无参构造方法可以省略；
         */


    }

}
